/******************************************************************************
* 文件名称: rtosConfig.h
* 创建者の: 孔佳伟
* 个人主页: https://gitee.com/thin-wind/jump
* 修改记录: 
******************************************************************************/

#ifndef __RTOS_CONFIG_H_
#define __RTOS_CONFIG_H_


#define xPortPendSVHandler      PendSV_Handler
#define xPortSysTickHandler     SysTick_Handler
#define vPortSVCHandler         SVC_Handler



// TickType_t 具体表示 16 位 还是 32 位，由 configUSE_16_BIT_TICKS 这个宏决定，
// 当该宏定义为 1 时，TickType_t 为 16 位，否则为 32 位
#define configUSE_16_BIT_TICKS                  0

// 任务名称字符串最大长度
#define configMAX_TASK_NAME_LEN                 16

// 任务的创建有两种方法，一种是使用动态创建，一种是使用静态创建
// 动态创建时，任务控制块和栈的内存是创建任务时动态分配的，任务删除时，内存可以释放
// 静态创建时，任务控制块和栈的内存需要事先定义好，是静态的内存，任务删除时，内存不能释放
// 为 1 表示静态创建
#define configSUPPORT_STATIC_ALLOCATION         1

// 最大任务优先级
#define configMAX_PRIORITIES                    16

// 配置中断屏蔽寄存器 BASEPRI 的值，高四位有效。目前配置为 191，因为是高四位有效，所以实际值等于 11，
// 即优先级高于或者等于 11 的中断都将被屏蔽
// 在关中断方面，FreeRTOS 与其它的 RTOS 关中断不同，而是操作 BASEPRI 寄存器来预留一部分中断，
// 并不像 μC/OS 或者 RT-Thread 那样直接操作 PRIMASK 把所有中断都关闭掉（除了硬 FAULT）
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 	191

// 空闲任务栈大小，默认为 128，单位为字，即 512 字节
#define configMINIMAL_STACK_SIZE                128

// 芯片时钟频率，必须要与实际硬件时钟频率保持一致
#define configCPU_CLOCK_HZ                      12000000

// 设置 Tick 频率，如设置 1000，则周期为 1ms
#define configTICK_RATE_HZ			            ((TickType_t)1000)

// 与时间片相关，在 xTaskIncrementTick()函数中使用，默认为 1
#define configUSE_PREEMPTION                    1

// 与时间片相关，在 xTaskIncrementTick()函数中使用，默认为 1
#define configUSE_TIME_SLICING                  1

#endif
